interface InfoBase {
  // 创建者
  'createBy'?: string
  // 创建时间
  'createTime'?: string
  // 更新者
  'updateBy'?: string
  // 更新时间
  'updateTime'?: string
  // 备注
  'remark'?: string
}

interface StudentBase {
  // 联系电话
  phonenumber?: string
  // 性别
  sex?: string
  // 出生日期
  birthday?: string
  // 身份证号
  studentIdCard: string
  // 姓名
  studentName?: string
  // 政治面貌
  studentPolitical?: string
  // 民族
  studentNation?: string
  // qq
  qq?: string
  // 联名卡卡号
  blankCode?: string
  // 家长联系方式 1
  parentTel1?: string
  // 家长联系方式 2
  parentTel2?: string
  // 省份
  province?: string
  // 家庭地址（身份证上的）
  studentAddress?: string
  // 现居住地地址
  nowAddress?: string
  // 健康状况
  heath: '健康' | '良好'
  // 籍贯
  nativePlace: string
  // 生源地
  studentFrom: string
  // 特长或爱好
  hobbies: string
  // 高中学校
  studentMiddleSchool?: string
  // 考生号
  studentExamCode?: string
  // 毕业类型
  graduationType: string
  // 考生类型
  studentType: string
  // 外语语种
  foreignLanguage: string
  // 乘车区间
  trainSection?: string
  // 考生科类
  disciplines?: string
  // 寝室
  dormitory?: string
  // 辅导员
  counsellor?: string
  // 辅导员电话
  counsellorTel?: string
}

interface StudentRemarkInfo {
  // 何年何月在何地加入中国共产党
  partyChina?: string
  // 何年何月在何地加入中国共青团
  communistYouthLeague?: string
  // 何年何月在何地参加学生组织及任职情况
  studentOrganization?: string
  // 何年何月在何地受到何种奖励或处分
  rewardsPunishment?: string
}

interface StudentSchoolInfo {
  // 学号
  studentCode?: string
  // 学院
  studentCollege?: string
  // 专业
  studentMajor?: string
  // 年级
  studentGrade?: string
  // 班级
  studentClass?: string
  // 培养方式
  directional?: string
  // 入学方式
  admissionMethod?: string
  // 学制
  educationalYear?: string
  // 学历层次
  educationalLevel?: string
  // 所任职务
  positionHeld?: string
  // 任职时间
  tenureDuration?: string
  // 综合测评成绩
  overallAssessmentScore?: string
  // 班级排名
  classRank?: string
  // 班级人数
  classSize?: string
  // 平均学分绩点
  averageGPA?: string
  // 重修补考次数
  retakeExamCount?: string
  // 何时获得奖励何时获得奖励
  rewardAcquisitionDate?: string
  // 主要事迹
  keyAchievements?: string
}

export interface StudentScoreInfo extends InfoBase {
  // 投档成绩
  submissionScore?: string
  // 语文
  chinese?: string
  // 数学
  math?: string
  // 外语
  language?: string
  // 综合
  comprehensive?: string
  // 文化成绩（艺体）
  culturalScore?: string
  // 专业成绩（艺体）
  majorScore?: string
  // 专业录取志愿
  professionalNum?: string
  // 政策加分
  policyPoints: string
  // 绑定学生id
  idCard: string
  // 总分
  zongfen: string
}

export interface StudentFamilyInfo extends InfoBase {
  // id
  'id': number
  // 关系
  'relationship': string
  // 姓名
  'name': string
  // 民族
  'nation': string
  // 政治面貌
  'political': string
  // 工作单位或职位
  'unitAndPosition': string
  // 电话
  'tel': string
  // 绑定学生id
  'studentId': string
}

export interface StudentEducationInfo extends InfoBase {
  // id
  'id': number
  // 绑定学生id
  'studentId': string
  // 起止年月
  'startEndTime': string
  // 学校名
  'schoolName': string
  // 证明人
  'certifier': string
}

export type Student = StudentBase & StudentSchoolInfo & StudentRemarkInfo & InfoBase

export interface Dept extends InfoBase {
  deptId: number
  parentId?: number
  ancestors: string
  deptName: string
  orderNum: number
  leader: string
  phone: string
  email: string
  status: string
  delFlag: string
  parentName: string
  children: Dept[]
}

export interface Role extends InfoBase {
  roleId: number
  roleName: string
  roleKey: string
  roleSort: number
  dataScope: string
  menuCheckStrictly: boolean
  deptCheckStrictly: boolean
  status: string
  delFlag?: string
  flag: boolean
  menuIds?: string
  deptIds?: string
  permissions?: string
  admin: true
}

export interface User extends InfoBase {
  userId: number
  deptId?: number
  userName: string
  nickName: string
  email?: string
  phonenumber?: string
  sex?: string
  avatar?: string
  password?: string
  status?: string
  delFlag?: string
  loginIp?: string
  loginDate?: string
  dept?: Dept
  roles?: Role[]
  permissions?: string[]
  roleIds?: string
  postIds?: string
  birthday?: string
  userType?: '教师' | '学生'
  admin: boolean
  passwordStatus?: string
}
